package com.nit.tools;

import com.google.common.base.Charsets;
import com.google.common.io.Resources;
import lombok.extern.slf4j.Slf4j;

import java.io.IOException;
import java.util.List;

/**
 * resource 资源读取工具
 *
 * @Auth: 逆天开源-逍遥哥哥
 * @link 1715656022@qq.com
 * @Date: 2023-07-11
 */
@Slf4j
public final class NitResourceUtils {

    /**
     * 逐行读取资源文件
     *
     * @param fileName 资源文件名
     * @return 资源文件各行字符串
     */
    public static List<String> readLines(String fileName) {
        NitAssertTools.checkArgumentNull(fileName, "资源文件名称为空");
        try {
            return Resources.asCharSource(Resources.getResource(fileName), Charsets.UTF_8).readLines();
        } catch (IOException e) {
            log.error("文件名称:{},资源文件读取失败", fileName);
            throw new RuntimeException(fileName + "资源文件读取失败");
        }
    }

    /**
     * 一次性读取资源文件内容
     *
     * @param fileName 资源文件名
     * @return 资源文件内容
     */
    public static String readString(String fileName) {
        NitAssertTools.checkArgumentNull(fileName, "资源文件名称为空");
        try {
            return Resources.asCharSource(Resources.getResource(fileName), Charsets.UTF_8).read();
        } catch (IOException e) {
            log.error("文件名称:{},资源文件读取失败", fileName);
            throw new RuntimeException(fileName + "资源文件读取失败");
        }
    }
}
